The present invention relates to a system and method for interpreting avionic computer programs using software generated by a high-level programming language.
Modern aircraft rely on special purpose avionic computers to facilitate pilot control of operation and navigation functions. In military applications, control of weapons is also integrated into the avionics computer. Each computer is programmed with an Operational Flight Program (OFP) which may be periodically revised based on actual flight experience or changes to the aircraft or weapons. In addition, each aircraft may have a number of OFP""s which correspond to various missions. A number of military air vehicle platforms, including the F/A-18 aircraft and the LAMPS Mk III helicopter use one or more of the AN/AYK-14 16-bit general purpose avionics minicomputers. While characterized as a general purpose flight computer, this computer is specified by the United States Navy and includes a non-standard backplane, non-standard cards, and a non-standard microprocessor and support chips. Thousands of these computers are in use around the world.
Because the life of the pilot (and crew, if any) relies on the proper performance of these aircraft, and that the replacement cost may range between $30 million and $50 million each, it is desirable to train the pilots prior to their first flight. An essential part of training includes sophisticated flight simulators which attempt to produce the same response to the pilot""s actions as the actual aircraft would produce in flight. An inaccurate response generated by the simulator may be detrimental to the pilot and the aircraft when in actual flight. Thus, simulators undergo intensive validation to assure that they accurately simulate actual in-flight performance. If the OFP is changed, it is often necessary to revalidate the simulators.
For military applications, two types of simulators may be utilized. Operational Flight Trainers (OFT) are used to gain basic operational skills with the aircraft while Weapons Tactics Trainers (WTT) are used to acquire weapons and tactics skills. Both types of simulators must be validated and often revalidated for each revision to the OFP. Unfortunately, revalidation may require a significant period of time. While it is desirable to rapidly implement OFP updates in simulators so pilots receive the most timely training, it is also desirable that updates will be accurately simulated in the simulators.
One approach to designing and building a flight simulator is to incorporate the same avionics computer into the simulator while emulating the response of various input and output hardware, such as sensors, switches, lights, and the like. Validation of this approach may be advantageous in that the avionics computer used in the simulator is the same as that used in the aircraft. As such, validation is limited to the input and output device emulation. However, due to the non-standard components used in the AN/AYK-14, the interface hardware must be custom designed and manufactured and is burdened by the associated costs. Furthermore, avionics computers continue to become more expensive, more complex, and harder to integrate into simulators. As such, this approach is no longer desirable.
Another approach to designing and building a flight simulator is to port the OFP source code to a different computer platform by recompiling and modifying all of the hardware dependent or compiler dependent code. This is a manpower intensive process which creates a large operations overhead cost. Further, porting assembly language code (i.e. low-level code) to a commercial high-level language (such as xe2x80x9cCxe2x80x9d) is a time consuming, programmer intensive process prone to the introduction of translation errors which reduce the validity of the simulator. As such, this approach requires revalidation of the OFP in the simulator for each OFP revision.
Yet another approach to creating a flight simulator is to construct a hardware reproduction of the avionics computer. For the AN/AYK-14, this approach is undesirable because its instruction set architecture is not based upon any commercially available microprocessor or chip set. As such, costly, custom hardware development would be required.
Alternatively, an embedded, bare machine hardware emulation using commercial hardware with no operating system could be constructed. This approach requires extensive and costly low level, assembly programming to attain the instruction execution speed of the actual avionics computer. Assembly or machine level software is also microprocessor specific and therefore not portable to other computers. Further, microprocessor hardware features are used to emulate target architectural machine features, including memory map and real time clock, to attain sufficient operational speed. Consequently, moving the emulation to another microprocessor with different hardware implementations of memory mapping and times requires these portions of the bare board emulator to be replaced, and is therefore undesirable.
A translator which performs off-line translation of the avionics computer assembly language into a high-level language, such as xe2x80x9cCxe2x80x9d can typically process only xc2xc to xc2xd of the input assembly code of the OFP. The remaining instructions must be hand translated. This is a costly and time consuming process which requires revalidation of the OFP and is also undesirable.
A functional simulator replaces both the flight hardware and software with hand coded software based on documentation provided by the hardware and software developer of the system being simulated. To make this solution cost competitive, various shortcuts are usually taken which limit the fidelity of the model. The reduced fidelity directly conflicts with the need to maintain flight software validation and the associated, costly, programming effort.
It is thus an object of the present invention to provide a system and method for interpreting avionic computer programs which meets or exceeds the overall instruction throughput processing requirements for real-time OFP operation.
A further object of the present invention is to provide a system and method for interpreting avionic flight computer instructions using commercial off-the-shelf hardware and software technology.
A still further object of the present invention is to provide a software interpreter for the AN/AYK-14 avionics computer which reduces turn-around time between delivery of a new aircraft OFP and its installation into a flight simulator or trainer.
Yet another object of the present invention is to provide a system and method for interpreting avionic computer instructions which reduces the cost for installation of a new aircraft OFP into a flight simulator or trainer.
A still further object of the present invention is to provide a software interpreter which does not require revalidation of OFP modifications in the flight simulator.
In carrying out the above objects and other objects and features of the present invention, a system and method for interpreting a plurality of sets of program instructions of an avionic flight computer are provided. The avionics computer typically has plurality of processors which execute a corresponding one of the sets of instructions which form the OFP. The interpreter is implemented on a general-purpose commercially available computer also having multi-processing capabilities with a greater number of processors than the avionics computer. The system and method include assigning each of the avionic computer processors to a corresponding one of the processors on the commercial computer and loading each set of program instructions into one of a plurality of cache memories each associated with one of the commercial computer processors. The system and method further include executing a shared process including the interpreter instructions on each of the commercial computer processors associated with one of the avionics computer""s processors. Each shared process interprets only those program instructions intended for its associated processor. The system and method also execute an additional shared process on an additional one of the commercial computer processors not already assigned to one of the avionic computer processors. The additional shared process controls input/output and interrupt requests generated by each of the other commercial computer processors.
The advantages accruing to the present invention are numerous. Because the present invention utilizes a high-level programming language and fully implements the avionics computer memory addressing system in software, it is independent of the particular hardware and is therefore portable among various commercial computer platforms. The system and method of the present invention can save significant cost by reducing hardware required for flight simulators and afford xe2x80x9cdrop-inxe2x80x9d capability for various OFP""s, i.e. no additional manual coding is required. By utilizing cache memory to store the OFP and associated data, the avionic computer virtual memory addressing system, and the software interpreter instructions the present invention can execute an AN/AYK-14 OFP in real-time for even the fastest available AN/AYK-14.